package com.hksj.em.service;

import cn.hutool.core.convert.Convert;
import cn.hutool.core.date.DateUtil;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.hksj.cbm.query.SpaceModelQuery;
import com.hksj.em.dto.create.CreateCaregiverTaskDTO;
import com.hksj.em.dto.update.BatchUpdateCaregiverTaskDTO;
import com.hksj.em.dto.update.UpdateCaregiverTaskDTO;
import com.hksj.em.entity.CaregiverTask;
import com.hksj.em.mapper.CaregiverTaskMapper;
import com.hksj.em.query.CaregiverTaskQuery;
import com.hksj.em.vo.CaregiverTaskVO;
import org.springframework.stereotype.Service;
import org.springframework.util.ObjectUtils;

import java.util.List;

/**
 * @author zengke
 * @version 1.0
 * @see CaregiverService
 * @since 2025/04/22 17:00
 */

@Service
public class CaregiverService extends ServiceImpl<CaregiverTaskMapper,CaregiverTask> {


    /**
     * 创建护工任务
     * 当情报面板点击呼叫清洁时、调用此接口创建一个护工呼叫任务、然后安卓端进行呼叫显示
     */
    public String createCaregiverTask(CreateCaregiverTaskDTO dto){

        CaregiverTask caregiverTask = Convert.convert(CaregiverTask.class, dto);

        caregiverTask.setStatus(0);
        caregiverTask.setCreateTime(DateUtil.now());

        super.save(caregiverTask);

        return "创建护工任务成功";
    }

    /**
     * 更新护工任务
     * 当已经上报弹窗语音提示完成后调用该接口、将当前的任务置为已完成状态
     */
    public String updateCaregiverTask(UpdateCaregiverTaskDTO dto){
        return null;
    }

    /**
     * 批量修改护工任务
     * @param dto
     * @return
     */
    public String batchUpdateCaregiverTask(BatchUpdateCaregiverTaskDTO dto){
        List<CaregiverTask> caregiverTaskList = dto.getCaregiverTaskList();

        if (!ObjectUtils.isEmpty(caregiverTaskList)){
            super.updateBatchById(caregiverTaskList);
        }

        return "批量新增成功";
    }

    /**
     * 动态查询护工任务列表
     * @param query 护工任务查询条件
     */
    public List<CaregiverTaskVO> queryCaregiverTaskList(CaregiverTaskQuery query){
        return baseMapper.queryCaregiverTaskList(query);

    }
}
